home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / CommToolbox classes / Sources / CCTBApp.c < prev    next >
Text File  |  1993-03-04  |  4KB  |  183 lines

  1. /* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
  2.  
  3.     CCTBApp.c
  4.     
  5.     CommToolbox compatible application class.
  6.     
  7.     SUPERCLASS = CApplication.
  8.     
  9.     Copyright © 1992-93 Romain Vignes. All rights reserved.
  10.     
  11. ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
  12.  
  13.  
  14. #include <CommResources.h>                    /* Apple includes */
  15.  
  16. #include <CError.h>                            /* TCL includes */
  17. #include <Global.h>
  18. #include <OSChecks.h>
  19.  
  20. #include "CConnection.h"                    /* Other includes */
  21. #include "CCTBApp.h"
  22. #include "CCTBDesktop.h"
  23. #include "CCTBSwitchboard.h"
  24. #include "CFileTransfer.h"
  25. #include "CTermPane.h"
  26.  
  27.  
  28. /* Constantes & Macros */
  29.  
  30. #define ERR_STR_ID            2000    /* Error messages ID */
  31. #define CTB_STR_INDEX        1        /* CTB message */
  32.  
  33. #define MIN_CTB_VERS        0x100    /* Minimum CommToolbox version */
  34.  
  35. #define CTB_TRAP            0x8B    /* CommToolbox trap */
  36.  
  37.  
  38. /* Variables globales */
  39.  
  40. extern tSystem    gSystem;
  41. extern CDesktop    *gDesktop;
  42. extern CError    *gError;
  43.  
  44.  
  45. /*
  46.  * ICTBApp
  47.  *
  48.  * Initialize the CTBApp object
  49.  *
  50.  * extraMasters:        Number of extra blocks
  51.  * aRainyDayFund:        Bytes of memory to reserve
  52.  * aCriticalBalance:    Bytes of memory to reserve for a critical operation    
  53.  * aToolboxBalance:        Bytes to save for the toolbox
  54.  *
  55.  */
  56.  
  57. void CCTBApp::ICTBApp(short extraMasters, Size aRainyDayFund,
  58.                             Size aCriticalBalance, Size aToolboxBalance)
  59. {
  60.     CApplication::IApplication(extraMasters,aRainyDayFund,aCriticalBalance,
  61.                                 aToolboxBalance); /* Initialize superclass */
  62.                                 
  63.     CApplication::cMaxSleepTime = 0L;
  64.     
  65.     if (!managersPresent())    {        /* CommToolbox installed ? */
  66.         SysBeep(3);
  67.         gError->PostAlert(ERR_STR_ID,CTB_STR_INDEX);
  68.         this->Exit();
  69.         ExitToShell();
  70.     }
  71.     
  72.     InitCRM();                /* CTB managers initialization */
  73.     InitCTBUtilities();
  74.     CConnection::cInitManager();
  75.     CTermPane::cInitManager();
  76.     CFileTransfer::cInitManager();
  77. }
  78.  
  79.  
  80. /* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
  81.  
  82. /*
  83.  * MakeDesktop
  84.  *
  85.  * CommToolbox desktop initialization
  86.  *
  87.  */
  88.  
  89. void CCTBApp::MakeDesktop(void)
  90. {
  91.     gDesktop = new(CCTBDesktop);    
  92.             
  93.     ((CCTBDesktop *)gDesktop)->ICTBDesktop(this);
  94. }    
  95.  
  96.  
  97. /* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
  98.  
  99. /*
  100.  * MakeSwitchboard
  101.  *
  102.  * CommToolbox switchboard initialization
  103.  *
  104.  */
  105.  
  106. void CCTBApp::MakeSwitchboard(void)
  107. {
  108.     itsSwitchboard = new(CCTBSwitchboard);
  109.     
  110.     ((CCTBSwitchboard *)itsSwitchboard)->ICTBSwitchboard();
  111. }
  112.  
  113.  
  114. /* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
  115.  
  116. /*
  117.  * Process1Event
  118.  *
  119.  * Handle the next Event
  120.  *
  121.  */        
  122.         
  123. void CCTBApp::Process1Event(void)
  124. {
  125.     CConnection::cConnIdle();        /* Idle loop for connection objects */
  126.  
  127.     CTermPane::cTermIdle();            /* Idle loop for terminal objects */
  128.     
  129.     CFileTransfer::cFTransIdle();    /* Idle loop for transfer objects */
  130.  
  131.     inherited::Process1Event();        /* Send the message to its superclass */
  132. }    
  133.  
  134.  
  135. /* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
  136.  
  137. /*
  138.  * GetCTBVersions
  139.  *
  140.  * Return the CTB managers versions
  141.  *
  142.  * CTBVers:        CommToolbox version
  143.  * CMVers:        Connection Manager version
  144.  * TMVers:        Terminal Manager version
  145.  * FTVers:        File Transfer Manager version
  146.  * CRMVers:        Communications Resources Manager version
  147.  *
  148.  */
  149.  
  150. void CCTBApp::GetCTBVersions(short *CTBVers,short *CMVers,short *TMVers,
  151.                                 short *FTVers,short *CRMVers)
  152. {
  153.     *CTBVers = CTBGetCTBVersion();
  154.     *CRMVers = CRMGetCRMVersion();
  155.     
  156.     *CMVers = CConnection::cGetCMVersion();
  157.     *TMVers = CTermPane::cGetTMVersion();
  158.     *FTVers = CFileTransfer::cGetFTVersion();
  159. }
  160.  
  161.  
  162. /* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
  163.  
  164. /*
  165.  * managersPresent
  166.  *
  167.  * Are the CTB managers installed ?
  168.  *
  169.  * Return TRUE if all managers are present
  170.  *
  171.  */
  172.  
  173. Boolean CCTBApp::managersPresent(void)
  174. {
  175.     if (TrapAvailable(CTB_TRAP))
  176.         return TRUE;
  177.     else
  178.         return FALSE;
  179. }
  180.  
  181.  
  182. /* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
  183.